
import { _Skill } from "../types";
import fs from 'fs';
import path from 'path';

let skData: _Skill[] = []

function loadSkillsFromDirectory() {
    const skillDirs = ['active', 'passive', 'aura'];
    skillDirs.forEach(dir => {
        const dirPath = path.join(__dirname, 'skills', dir);
        const sceneDir = path.resolve(dirPath);
        
        if (!fs.existsSync(sceneDir)) {
            console.warn(`技能目录不存在: ${sceneDir}`);
            return;
        }
        
        const files = fs.readdirSync(sceneDir);
        files.forEach(file => {
            // 只处理.js和.ts文件，跳过其他文件类型
            if (!(file.endsWith('.ts') || file.endsWith('.js'))) {
                return;
            }
            
            try {
                const filePath = path.join(sceneDir, file);
                const skillData: _Skill[] = require(filePath).default;
                
                // 检查skillData是否为数组
                if (!Array.isArray(skillData)) {
                    console.warn(`文件 ${file} 导出的不是数组格式`);
                    return;
                }
                
                skillData.forEach(item => {
                    const existingSkill = skData.find(sk => sk.id == item.id);
                    if (existingSkill) {
                        console.warn(`技能ID重复: ${item.id}`);
                        return;
                    }
                    skData.push(item);
                    console.log(`加载技能: ${item.id} - ${item.name}`);
                });
            } catch (error) {
                console.error(`加载技能数据失败 ${file}:`, error);
            }
        });
    });
}

// 调用函数以加载技能数据
loadSkillsFromDirectory();

export default skData;